#!/usr/bin/env python
# coding=utf-8
# author:wade
# contact: 317909531@qq.com
# datetime:2020/5/4 15:16

"""
文件说明：文件模板内容生成
"""
import logging

import random


def RandomLinkContent():
    return '', ''


def tbpinglun_getNeedData(TBComment_Query, TBimg_Query):
    commentList = []  # 评论列表
    commentImgList = []  # 图片列表
    # #  前提是必须先存入数据库，读取readinfo(id)数据库内容并整合数据开始，获得某个id的所有db-json数据,获得的结构是[(),()...数据结构]
    print(len(TBComment_Query))
    for i in TBComment_Query:
        commentList.append(i.commentWord)
    print(len(TBimg_Query))
    for i in TBimg_Query:
        commentImgList.append(i.imgSrc)
    logging.warning('正常运行')
    """现在考虑几种情况(评论只需要10段话,每段话只需要引用列表内容数量2,2,3,2,3,3，5，4，3，3，3，3，一共是40条就行)
    1.评论不够，0条，1条，4条
    2.评论够，图片0张，1张，3张
    3.评论和图片都不够
    4.足够用

    6个段落一定要凑够，不然模板会出错
    图片一定要有15张
    """
    '''内容处理'''
    if len(commentList) >= 50:  # 如果数据库评论足够试用，随机取出50条
        newcommentList = random.sample(list(commentList), 50)
        print('=======tbpinglun_getNeedData---commentList=========')
        print(commentList)
    else:
        ''' 如果不够40条数，就自动补充，把commentList补充够40条，内容留空
            下面的这个条功能是不够数量自动补充
        '''

        kouyu = []  # 如果不够40条，填充内容随机填充，kouyu就是填充得内容
        kouyuList = ["心情美美的东西不错", '是个好东西,用完了再来回购', '是正品第二次购买了，好不好自己用了才知道', '我用了很久了很好用，良心推荐', '包装完好 很满意 好评质量杠杠得',
                     '认真点评一下，真的很好,可以放心用', '朋友推荐的品牌，售后给力', '包装严实精美，效果不错，质量有保障是关键', '哈哈。真心不错哦',
                     '好用,发的快递很快，一天就到了。物流必须点个赞！']
        newcommentList = random.sample(list(commentList), len(commentList))
        for num in range(50 - len(commentList)):
            kouyu.append(random.choice(kouyuList))
        newcommentList = list(newcommentList + kouyu)
        # print(commentList)

    '''图片处理'''
    if len(commentImgList) >= 11:  # 如果data里边图片足够用，随机取出5条
        newcommentImgList = random.sample(list(commentImgList), 11)
    else:
        '''如果图片不够11条，就留空，不显示就行了'''
        newcommentImgList = random.sample(list(commentImgList), len(commentImgList))
        newcommentImgList = list(newcommentImgList + [""] * (11 - len(commentImgList)))

    # print(type(word))
    # template(commentList,commentImgList)
    print(newcommentList)
    print(newcommentImgList)
    return newcommentList, newcommentImgList


"""    
需要的数据为：
    commentWordList 评论数据           TbComment -> commentWord
    item_TBK_url    商品淘宝客连接      TbIndex -> tbkURL
    shop_TBK_LINK   店铺淘宝客连接      TbIndex -> tbkShopURL
    imgSrcList      图片列表           TbIMG -> imgSrc
    keyword         核心词             BBSContent  -> keyword
    title           取得是             BBSContent  -> contentWord
    '''"""

#企博文章组合末班
def ContentFactory(TbIndex_Query, querySet, TBimg_Query, TBComment_Query):
    print('第一段需要3条')
    print('第二段介绍语')
    print('第三段段需要3条，循环pop')
    # init
    mainWord1 = ''
    clickword = "查看更多网友实拍 »"
    shop_TBK_LINK = TbIndex_Query.tbkShopURL
    item_TBK_url = TbIndex_Query.tbkURL
    try:

        commentList, pic = tbpinglun_getNeedData(TBComment_Query, TBimg_Query)  # 数据整理函数，返回word[]6个，pic[]5个
        word = []
        # 模板需要的数据：
        print(type(commentList[1]))
        word.append(''.join(commentList[0:5]))  # 第0段
        word.append(''.join(commentList[6:8]))  # 第1段
        word.append(''.join(commentList[9:13]))  # 第2段
        word.append(''.join(commentList[14:20]))  # 第3段
        word.append(commentList[21] + mainWord1 + commentList[23])  # 第4段
        word.append(''.join(commentList[24:29]))  # 第5段
        word.append(''.join(commentList[30:34]))  # 第6段
        word.append(''.join(commentList[35:38]))  # 第7段
        word.append(commentList[39] + mainWord1 + commentList[40])  # 第8段
        word.append(''.join(commentList[41:43]))  # 第9段

        # '''正则结束End'''
        # # 获取到wx的广告语,插入到模板
        wxword = '微信广告语'
        randomtitle1, randomUrl = RandomLinkContent()
        randomtitle2, randomUr2 = RandomLinkContent()
        # clickword = "查看更多网友实拍 »"
        postword1 = f'''{word[0]}
            <p><strong><span style="font-size: medium;color: red;">用户真实使用反馈：</span></br>
            <a href="{item_TBK_url}" target="_blank"><span style="font-size: medium;color:blue;">http://www.bokee.net/592548198921/dianping</span></a></strong></p>
            <p><span style="font-size: lager;"><strong><span style="color: red;"><a href="{shop_TBK_LINK}" target="_blank"><span style="font-size: medium;"><span style="color: rgb(255, 0, 0);">官方旗舰店：</span></span></a></span> </strong></span></br>
            <strong><a href="{shop_TBK_LINK}" target="_blank"> <span style="font-size: medium;color:blue;">http://www.bokee.net/592548198921/tejia</span></a></strong></p>
            <img src="{pic[0]}" alt="" /></p>
            <p>{word[1]}，</p>
            <img src="{pic[1]}" alt="" /></p>
            <p>{word[2]}，</p>
            <img src="{pic[2]}" alt="" /></p>
            <p>{word[3]}，</p>
            <img src="{pic[3]}" alt="" /></p>
            <p>{word[4]}，</p>
            <img src="{pic[4]}" alt="" /></p>
            <p>{word[5]}，</p>
            <img src="{pic[5]}" alt="" /></p>
            <p>{word[6]}，</p>
            <img src="{pic[6]}" alt="" /></p>'''

        Contentlist = []
        Contentlist.append(postword1)

        print('-------------------')


    except Exception as e:
        print(e)
        logging.info('组合评论成为文章步骤出错,问题在postMAIN.py tbpinglun函数里边,采集发帖失败')
        # exit(code='产品现在没有足够的评论，采集发帖失败')
        return None
    return random.choice(Contentlist)


#企博文章组合模板，返回content主贴内容（str）和跟帖帖列表(list)

def ContentFactory_forDiscuz(TbIndex_Query, querySet, TBimg_Query, TBComment_Query):
    content = ''
    pinglunList = []


    print('第一段需要3条')
    print('第二段介绍语')
    print('第三段段需要3条，循环pop')
    # init
    mainWord1 = ''
    clickword = "查看更多网友实拍 »"
    shop_TBK_LINK = TbIndex_Query.tbkShopURL
    item_TBK_url = TbIndex_Query.tbkURL

    try:

        commentList, pic = tbpinglun_getNeedData(TBComment_Query, TBimg_Query)  # 数据整理函数，返回word[]6个，pic[]5个
        word = []
        # 模板需要的数据：
        print(type(commentList[1]))
        word.append(''.join(commentList[0:5]))  # 第0段
        word.append(''.join(commentList[6:8]))  # 第1段
        word.append(''.join(commentList[9:13]))  # 第2段
        word.append(''.join(commentList[14:20]))  # 第3段
        word.append(commentList[21] + mainWord1 + commentList[23])  # 第4段
        word.append(''.join(commentList[24:29]))  # 第5段
        word.append(''.join(commentList[30:34]))  # 第6段
        word.append(''.join(commentList[35:38]))  # 第7段
        word.append(commentList[39] + mainWord1 + commentList[40])  # 第8段
        word.append(''.join(commentList[41:43]))  # 第9段

        '''
            {word[0]}
            <p><strong><span style="font-size: medium;color: red;">用户真实使用反馈：</span></br>
            <a href="{item_TBK_url}" target="_blank"><span style="font-size: medium;color:blue;">http://www.bokee.net/592548198921/dianping</span></a></strong></p>
            <p><span style="font-size: lager;"><strong><span style="color: red;"><a href="{shop_TBK_LINK}" target="_blank"><span style="font-size: medium;"><span style="color: rgb(255, 0, 0);">官方旗舰店：</span></span></a></span> </strong></span></br>
            <strong><a href="{shop_TBK_LINK}" target="_blank"> <span style="font-size: medium;color:blue;">http://www.bokee.net/592548198921/tejia</span></a></strong></p>

        '''

        # content = f'''<font color="#333333" style="overflow-wrap: break-word; font-family: &quot;Microsoft Yahei&quot;, Tahoma, Simsun; font-size: 14px;"><font face="Arial" style="overflow-wrap: break-word;">{word[0]}</font></font>
        # <br style="overflow-wrap: break-word; color: rgb(68, 68, 68); font-family: &quot;Microsoft Yahei&quot;, Tahoma, Simsun; font-size: 14px;" data-filtered="filtered">
        # <font face="Arial" style="overflow-wrap: break-word; color: rgb(68, 68, 68); font-size: 14px;"><font size="5" style="overflow-wrap: break-word;"><a href="{item_TBK_url}" target="_blank" style="overflow-wrap: break-word; color: rgb(27, 128, 170);"><font color="#ff0000" style="overflow-wrap: break-word;">专家揭秘是否靠谱&gt;&gt;点击查看</font></a><font color="#ff0000" style="overflow-wrap: break-word;">&nbsp;</font></font></font>
        # <br style="overflow-wrap: break-word; color: rgb(68, 68, 68); font-family: &quot;Microsoft Yahei&quot;, Tahoma, Simsun; font-size: 14px;" data-filtered="filtered">
        # <font face="Arial" style="overflow-wrap: break-word; color: rgb(68, 68, 68); font-size: 14px;"><font size="5" style="overflow-wrap: break-word;"><a href="{shop_TBK_LINK}" target="_blank" style="overflow-wrap: break-word; color: rgb(27, 128, 170);"><font color="#ff0000" style="overflow-wrap: break-word;">淘♥宝官方旗舰店&gt;&gt;点击进入</font></a><font color="#ff0000" style="overflow-wrap: break-word;">&nbsp;</font></font></font>'''
        content = f'''[font=&quot;]{word[0]}[/font]

[font=&quot;][b][size=4]关于产品质量怎么样，以下供参考：[/size][/b]

[color=#ff0000][size=4][b]产品用后反馈吐槽：[/b][/size][/color][b][color=#1b80aa][url={item_TBK_url}][size=4][color=#0000ff]用户真实使用反馈：[/color][/size][/url][/color]
[/b]
[color=#ff0000][size=4][b]产品性能，使用感受综合评测：[/b][/size][/color][color=#1b80aa][size=4][url={shop_TBK_LINK}][color=#0000ff][b]官方旗舰店：[/b][/color][/url][/size][/color][/font]
[img=400,400]{pic[0]}[/img]
[img=400,400]{pic[1]}[/img]
'''
        for index,pic_item in enumerate(pic[2:]):
            if pic[index] != '':
                pinglunList.append(f'''[font=&quot]{word[index]}[/font]
[img]{pic[index]}[/img]''')

    except Exception as e:
        print(e)
        logging.info(f'itemTemplate.py例外抛出{e}')
        # exit(code='产品现在没有足够的评论，采集发帖失败')
        return None,None


    return content,pinglunList



def ContentFactory_forDjango(TbIndex_Query, querySet, TBimg_Query, TBComment_Query):
    content = ''
    pinglunList = []

    print('第一段需要3条')
    print('第二段介绍语')
    print('第三段段需要3条，循环pop')
    # init
    mainWord1 = ''
    clickword = "查看更多网友实拍 »"
    shop_TBK_LINK = TbIndex_Query.tbkShopURL
    item_TBK_url = TbIndex_Query.tbkURL

    try:

        commentList, pic = tbpinglun_getNeedData(TBComment_Query, TBimg_Query)  # 数据整理函数，返回word[]6个，pic[]5个
        word = []
        # 模板需要的数据：
        print(type(commentList[1]))
        word.append(''.join(commentList[0:5]))  # 第0段
        word.append(''.join(commentList[6:8]))  # 第1段
        word.append(''.join(commentList[9:13]))  # 第2段
        word.append(''.join(commentList[14:20]))  # 第3段
        word.append(commentList[21] + mainWord1 + commentList[23])  # 第4段
        word.append(''.join(commentList[24:29]))  # 第5段
        word.append(''.join(commentList[30:34]))  # 第6段
        word.append(''.join(commentList[35:38]))  # 第7段
        word.append(commentList[39] + mainWord1 + commentList[40])  # 第8段
        word.append(''.join(commentList[41:43]))  # 第9段

        content = f'''
        <p>{word[0]}</p>
        <p>那么这次的测评就到这里啦，希望大家都能买到自己喜欢的宝贝,我们下期再见</p>
        <p>更多的测评请关注www.tbzhu.com，给您带来最新的测评资讯</p>
        '''
    #     content = f'''[font=&quot;]{word[0]}[/font]
    #
    # [font=&quot;][b][size=4]关于产品质量怎么样，以下供参考：[/size][/b]
    #
    # [color=#ff0000][size=4][b]产品用后反馈吐槽：[/b][/size][/color][b][color=#1b80aa][url={item_TBK_url}][size=4][color=#0000ff]专家揭秘是否靠谱>>点击查看[/color][/size][/url][/color]
    # [/b]
    # [color=#ff0000][size=4][b]产品性能，使用感受综合评测：[/b][/size][/color][color=#1b80aa][size=4][url={shop_TBK_LINK}][color=#0000ff][b]专家揭秘是否靠谱>>点击查看[/b][/color][/url][/size][/color][/font]
    #
    # [img=400,400]{pic[0]}[/img]
    #
    # [img=400,400]{pic[1]}[/img]
    # '''
        for index, pic_item in enumerate(pic[2:]):
            if pic[index] != '':
                pinglunList.append(f'''
  <img class="img-fluid" src="{pic[index]}" alt="Card image cap">
    <p class="flex-wrap">{word[index]}</p>

                '''
                                   # <span>{word[index]}</span></br>
                                   #                 <img src="{pic[index]}"/>
                                   )

    except Exception as e:
        print(e)
        logging.info(f'itemTemplate.py例外抛出{e}')
        # exit(code='产品现在没有足够的评论，采集发帖失败')
        return None, None

    return content, pinglunList
